home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / obero / oberon_lib.lha / oberon-a / source1.lha / source / Amiga / Icon.mod < prev    next >
Text File  |  1994-08-08  |  4KB  |  157 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: Icon.mod $
  4.   Description: Interface to icon.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.2 $
  8.       $Author: fjc $
  9.         $Date: 1994/08/08 01:12:16 $
  10.  
  11.   Includes Release 40.15
  12.  
  13.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  14.       All Rights Reserved
  15.  
  16.   Oberon-A interface Copyright © 1994, Frank Copeland.
  17.   This file is part of the Oberon-A Interface.
  18.   See Oberon-A.doc for conditions of use and distribution.
  19.  
  20. ***************************************************************************)
  21.  
  22. MODULE Icon;
  23.  
  24. (*
  25. ** $C- CaseChk       $I- IndexChk  $L+ LongAdr   $N- NilChk
  26. ** $P- PortableCode  $R- RangeChk  $S- StackChk  $T- TypeChk
  27. ** $V- OvflChk       $Z- ZeroVars
  28. *)
  29.  
  30. IMPORT SYS := SYSTEM, E := Exec, W := Workbench;
  31.  
  32. (*
  33. **      $VER: icon.h 36.1 (26.10.90)
  34. **
  35. **      external declarations for icon.library
  36. *)
  37.  
  38. CONST
  39.  
  40.   name * = "icon.library";
  41.  
  42.  
  43. (*-- Icon Base variable --------------------------------------------*)
  44.  
  45. TYPE
  46.  
  47.   IconBasePtr * = CPOINTER TO IconBase;
  48.   IconBase * = RECORD (E.Library) END;
  49.  
  50. VAR
  51.  
  52.   base * : IconBasePtr;
  53.  
  54.  
  55. (*-- Library Functions ------------------------------------------------*)
  56.  
  57. (*
  58. **      $VER: icon_protos.h 38.2 (16.6.93)
  59. *)
  60.  
  61. LIBCALL (base : IconBasePtr) GetIcon*
  62.   ( name      [8] : ARRAY OF CHAR;
  63.     icon      [9] : W.DiskObjectPtr;
  64.     freelist [10] : W.FreeListPtr )
  65.   : LONGINT;
  66.   -42;
  67. LIBCALL (base : IconBasePtr) PutIcon*
  68.   ( name [8] : ARRAY OF CHAR;
  69.     icon [9] : W.DiskObjectPtr )
  70.   : BOOLEAN;
  71.   -48;
  72. LIBCALL (base : IconBasePtr) FreeFreeList*
  73.   ( freelist [8] : W.FreeListPtr );
  74.   -54;
  75. LIBCALL (base : IconBasePtr) AddFreeList*
  76.   ( freelist [8] : W.FreeListPtr;
  77.     mem      [9] : E.APTR;
  78.     size    [10] : E.ULONG )
  79.   : BOOLEAN;
  80.   -72;
  81. LIBCALL (base : IconBasePtr) GetDiskObject*
  82.   ( name [8] : ARRAY OF CHAR )
  83.   : W.DiskObjectPtr;
  84.   -78;
  85. LIBCALL (base : IconBasePtr) PutDiskObject*
  86.   ( name    [8] : ARRAY OF CHAR;
  87.     diskobj [9] : W.DiskObjectPtr )
  88.   : BOOLEAN;
  89.   -84;
  90. LIBCALL (base : IconBasePtr) FreeDiskObject*
  91.   ( diskobj [8] : W.DiskObjectPtr );
  92.   -90;
  93. LIBCALL (base : IconBasePtr) FindToolType*
  94.   ( toolTypeArray [8] : E.APTR;
  95.     typeName      [9] : ARRAY OF CHAR )
  96.   : E.STRPTR;
  97.   -96;
  98. LIBCALL (base : IconBasePtr) MatchToolValue*
  99.   ( typeString [8] : ARRAY OF CHAR;
  100.     value      [9] : ARRAY OF CHAR )
  101.   : BOOLEAN;
  102.   -102;
  103. LIBCALL (base : IconBasePtr) BumpRevision*
  104.   ( VAR newname [8] : ARRAY OF CHAR;
  105.     oldname     [9] : ARRAY OF CHAR );
  106.   -108;
  107.  
  108. (* --- functions in V36 or higher (distributed as Release 2.0) ---*)
  109.  
  110. LIBCALL (base : IconBasePtr) GetDefDiskObject*
  111.   ( type [0] : LONGINT )
  112.   : W.DiskObjectPtr;
  113.   -120;
  114. LIBCALL (base : IconBasePtr) PutDefDiskObject*
  115.   ( diskObject [8] : W.DiskObjectPtr )
  116.   : BOOLEAN;
  117.   -126;
  118. LIBCALL (base : IconBasePtr) GetDiskObjectNew*
  119.   ( name [8] : ARRAY OF CHAR )
  120.   : W.DiskObjectPtr;
  121.   -132;
  122. LIBCALL (base : IconBasePtr) DeleteDiskObject*
  123.   ( name [8] : ARRAY OF CHAR )
  124.   : BOOLEAN;
  125.   -138;
  126.  
  127. (*-- Library Base variable --------------------------------------------*)
  128. (* $L- Address globals through A4 *)
  129.  
  130.  
  131. (*-----------------------------------*)
  132. PROCEDURE* CloseLib ();
  133.  
  134. BEGIN (* CloseLib *)
  135.   IF base # NIL THEN E.base.CloseLibrary (base) END
  136. END CloseLib;
  137.  
  138. (*-----------------------------------*)
  139. PROCEDURE OpenLib * (mustOpen : BOOLEAN);
  140.  
  141. BEGIN (* OpenLib *)
  142.   IF base = NIL THEN
  143.     base :=
  144.       SYS.VAL
  145.         ( IconBasePtr,
  146.           E.base.OpenLibrary (name, E.libraryMinimum) );
  147.     IF base # NIL THEN SYS.SETCLEANUP (CloseLib)
  148.     ELSIF mustOpen THEN HALT (100)
  149.     END;
  150.   END;
  151. END OpenLib;
  152.  
  153.  
  154. BEGIN
  155.   base := NIL
  156. END Icon.
  157.